// Copyright Epic Games, Inc. All Rights Reserved.

#pragma once

#include "Modules/ModuleManager.h"
#include "Logging/LogMacros.h"

/** Log category for the WmfMedia module. */
DECLARE_LOG_CATEGORY_EXTERN(LogFFMPEGLib, Log, All);

class FFFmpegModule : public IModuleInterface
{
public:
    FFFmpegModule();
	/** IModuleInterface implementation */
	virtual void StartupModule() override;
	virtual void ShutdownModule() override;
    static void log_callback(void*, int level, const char* format, va_list arglist);

private:
    void* LoadLibrary(const  FString& name, const FString& version);
	/** Handle to the test dll we will load */
    void* AVUtilLibrary;
    void* SWResampleLibrary;
    void* AVCodecLibrary;
    void* SWScaleLibrary;
    void* AVFormatLibrary;
    void* PostProcLibrary;
    void* AVFilterLibrary;
    void* AVDeviceLibrary;
};
